In fact we have two systems of relations. One - the simplified model for the monsters, the other one -  more complicated model for stalkers. All about relationships described in the file game_relations.ltx

 

Each group, and each type of monster defines a team.

The relations between the monsters is considered by the commands (yet so, but it is quite possible that "teams" in general will be removed from the game)

Commands for stalkers appear in the stalkers section [game_relations] (communities string.)

Commands for monsters appear in the section [monster_communities]  (communities string.)

 

The relations between the monsters are set in section [monster_relations].

The relationship between the monsters, as well as between the monsters and stalkers is determined by a simple system of "friend", "enemy", "worst enemy".

The difference between an "enemy "and "worst enemy" is in choosing the enemy if there are a few enemies. The first monster will try to attack the worst enemy, when all other parameters are equal.

 

 

The relationship between stalkers are on a more complicated scheme:

There are two. scales that characterize the three parameters of the character. This rating (coolness), reputation (goodness). When calculating, the relationship is sensitive to these parameters + added to them the personal attitude of the character, the ratio between the factions.

 

For a more sensible outputting information to the screen and work with this info ,we set boundary conditions under which the parameters of rating and reputation change values. In section:

[game_relations]

;real separation of the groups on the scale of reputation

rating                              = novice, 30, experienced, 60, veteran, 90, master

reputation                       = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent

 

; scales to display the names instead of numbers

, ratings, reputation and goodwill in the interface

rating_names                  = novice, 30, experienced, 60, veteran, 90, master

reputation_names            = terrible, -1000, very_bad, -150, bad, -50, neutral, 50, good, 150, very_good, 1000, excellent

goodwill_names      = enemy, -1000, hostile, -500, indifferent, 500, companionable, 1000, friendly

 

There are given boundary conditions under which the neutral becomes friend or foe:

, the thresholds for the ratio of characters

attitude_neutal_threshold = -400            ;when attitude smaller than treshold value, we set ALife::eRelationEnemy

attitude_friend_threshold =  500             ;when attitude smaller than treshold value, we set ALife::eRelationNeutral, иначе ALife::eRelationFriend

 

in the section [communities_relations] defined the relationship between the factions of stalkers.

 Setting 0 means that these groups initially neutral. More precisely that between them there is no modifier relations. -5000, As +5000 indicates that these groups among themselves eternal enemies or friends.

So, they never will change their attitude .

For an actor there is no eternal friends and cannot be.

Example eternal friends - military to military, zombie stalkers to the monolith, and vice versa. If we want to set the initial value other than 0, which then may change depending on player's actions - you need to choose between 1000 -1000. For example at the moment ecologists are friendly to the player, but it could easily change.

 

Section [rank_relations] described the relationship between the ranks of the stalkers. At the moment there are zero everywhere, as it is stupid like that ;), but in general the mechanism is working, and if you will find for it a logical application - you can use it.

In the section [reputation_relations] described the relationship between reputations. The general sense is - the bads are good to bads. The goods are good to goods.

 Varies from -1000 to +1000. In such a way that if we don't do anything  bad to Vasya , but did it to everyone else, then the initially neutral.

 

 

Further options affect the personal parameters of the character.

[rank_kill_points]

         How strong increased our coolness with the killing of the characters.

 

 

Changing our goodness while attacking or killing stalkers

[action_points]

 friend_attack_goodwill                           = -500

neutral_attack_goodwill                          = -300

enemy_attack_goodwill                          = -100

; IMHO reputation should not be changed during the combat, only for killing.

; other for a couple of fights we will arrange negative reputation:)

friend_attack_reputation             = 0

neutral_attack_reputation                       = 0

enemy_attack_reputation                                   = 0

 

friend_kill_goodwill                                = -500

neutral_kill_goodwill                               = -300

enemy_kill_goodwill                               = -100

 

community_member_kill_goodwill  = -50000

friend_kill_reputation                              = -50

neutral_kill_reputation                            = -20

enemy_kill_reputation                             = 0

 

special option, which is responsible for the frequency of reaction.

This will happen if for 1 second character will take two hits from the same object, it will worsen the ratio of only 1 time. Needs to remove effect that  machine gun will not compromise attitude more than a shot from sniper rifle. Or like throwing a grenade will cause us 20 hits, but the relationship soured only 1 time instead of 20.

min_attack_delta_time = 1

 

 

parameters under which the character will be assumed that we had helped him and what we get for this. Now we working with this idea:

 Assistance is considered successful if the monster is attacking the stalker, and we have make damage to monster.

 

If our hit greater than 30, then we helped

help_hit_threshold = 30

 

 

fight_remember_time = 10                      ;(c) for register

 

Who gives us a profit for the help?

friend_fight_help_goodwill   = 30

neutral_fight_help_goodwill         = 30

enemy_fight_help_goodwill    = 0

 

friend_fight_help_reputation  = 2

neutral_fight_help_reputation = 2

enemy_fight_help_reputation         = 0

 

 

A single word about the freactions. In [communities_sympathy] are the coefficients of sympathy. If someone changes their attitude toward us, then all his fraction also changes the relation, proportional to the coefficient of Sympathy. Some groups have a coefficient zero, for example loners.